There has been a movement in heavy duty diesel engine controllers toward a two module controller system. In prior two module Electronic Control Units (ECUs), a first module received the second module fault information over an ECAN ID 1629, however the information provided in that message used the second module Monitoring Unit Identification (MUID) as the fault identifier. The first module was then required to translate the second module MUID to meaningful J1587 PID/FMI and J1939 SPN/FMI combinations. In order for that translation to take place, the first module had to keep a cross reference table of all possible second module MUID's and their relation to PID/SID numbers. The second module implemented the second module static fault table in ROM at compile time, meaning that the Fault Code Module (FCM) data compatibility was achieved only when the latest version of the first module software was used together with the equivalent or older versions of the second module software. A strict discipline with the second module fault table updates had to be observed such that no new Diagnostic Trouble Codes (DTCs) were added without prior communication with the second module software personnel. The core weakness of this arrangement is an inherent inability to handle random usage of various first module/second module software versions and the persistent reliance on flawless communication between the second module and the first module development community.
In order to alleviate these shortcomings, automated fault code memory synchronization from the second module to the first module is desirable. This ensures that the first module is always in possession of the exact fault code table based on which the given second module is operating and the second module is free to rearrange its static fault code table as necessary from one software release to the next. New MUIDs can also be added and the unused ones can be freely deleted.
1. Field of the Invention
The present invention relates to a method to synchronize fault codes between at least two modules within an engine controller.
The present invention further relates to the synchronization of fault codes between a first module, such as a Common Powertrain Controller (CPC2), and a second module, such as a Motor Control Module (MCM) in an engine controller that ensures that the static fault code versions between the two modules are compatible before downloading begins.
The present invention further relates to a method to synchronize fault codes between a CPC2 controller and the MCM controller in an engine controller wherein the CPC2 controller acts as a diagnostic gateway for the MCM on an SAEJ1587 and SAEJ1939 data link and reports all MCM faults on those two data links for Unified Diagnostic Services (UDS).
2. Description of the Related Art
Lee, et al., U.S. Pat. No. 6,629,271 discloses a computer processor that includes a replay system to replay instructions that have not executed properly in the first event pipeline coupled to the relay system to process instructions including any replayed instructions. A second event pipeline is provided to perform additional processing on an instruction. The second event pipeline has an ability to detect one or more faults occurring therein. The processor also includes a synchronization circuit coupled between the first event pipeline and the second event pipeline to synchronize faults occurring in the second event pipeline to matching instruction entries in the first event pipeline.
Lee, et al. U.S. Pat. No. 7,159,154 discloses a computer processor that includes a replay system to replay instructions that have not executed properly. In the first event pipeline coupled to the relay system to process instructions including any replayed instructions. A second event pipeline is provided to perform additional processing on an instruction. The second event pipeline has an ability to detect one ore more faults occurring therein. The processor also includes a synchronization circuit coupled between the first event pipeline and the second event pipeline to synchronize faults occurring in the first and second event pipeline to matching instruction entries in the first event pipeline.